package vista;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import modelo.Cuadrado;
import modelo.Modelo;
import modelo.Figura;
import javax.swing.*;
import controlador.Controlador;




public class Vista extends JPanel {
	static final long serialVersionUID = 0L;
	private Modelo modelo;
	public Controlador controlador;  //IMPORTANTE DEBE SER REGISTRADO O TODO FALLA
	private Figura seleccionada;

    public JFrame frame1;
    public static  JMenuBar barraMenu = new JMenuBar();
    public static  JMenu menuJuego = new JMenu("Archivo");
    public static  JMenuItem nuevo = new JMenuItem("Crear Archivo");
    public static  JMenuItem abrir = new JMenuItem("Abrir Partida");
    public static  JMenuItem guardar = new JMenuItem("Guardar Archivo");

	
	public Vista(Dimension size, Modelo modelo, JFrame frame){
		super();
		this.modelo=modelo;
		frame1=new JFrame();
		setPreferredSize(size);
		setBackground(Color.white);
		setFocusable(true);
		seleccionada=null;
        frame1=frame;
		/*Mejorable al 1000% solo por simplificacion realizado de esta forma*/
		menuJuego.add(nuevo);
        menuJuego.add(abrir);
        menuJuego.add(guardar);
        barraMenu.add(menuJuego);
        frame1.pack();
        frame1.setJMenuBar(barraMenu);
        frame1.setBounds(200,120,600,600);
	}
	
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		Graphics2D g2 = (Graphics2D) g;
		pintarTodo(g2);
	}
	
	private void pintarTodo(Graphics2D g){
		for (Figura elemento : modelo.getListado()) {
			if (elemento instanceof modelo.Cuadrado){
				Cuadrado c = (Cuadrado) elemento;
				g.setColor(Color.BLUE);
				g.fillRect(c.getX(), c.getY(), c.getAncho(), c.getAncho());
				if(c.getSeleccionada()){
					g.setColor(Color.RED);
					g.drawRect(c.getX()+7, c.getY()+7, c.getAncho()-20, c.getAncho()-20);
				}
			}
		}
	}

	
	
}


